/*
	Written By Pradipna Nepal
	www.pradsprojects.com

	Copyright (C) 2012 Prads Projects
	Please read COPYING.txt included along with this source code for more detail.
	If not included, see http://www.gnu.org/licenses/
*/

#ifndef LIBTOKENMODULE_H
#define LIBTOKENMODULE_H

#include <vector>
#include <string>
#include "libToken.h"
#include "resTokenTypes.h"
#include "libPrintError.h"
using namespace std;
using namespace PrintError;

#define MODULE_ID_MAIN		0

struct TokenLines {
	TokenLineTypes lineType;
	vector<Token> tokens;
};

struct TokenModule {
	int id;
	string name;
	vector<TokenLines> lines;
	int size;
};

namespace ModuleSeparator {
	bool separateModules(const vector<Token> *tokens, vector<TokenModule> *modOut);
}

#endif